package com.leetcode.题库.score1;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 在学校中，N个小朋友站成一队， 第i个小朋友的身高为height[i]
 * 第i个小朋友可以看到的第一个比自己身高更高的小朋友j，那么j是i的好朋友(要求j > i)
 * 请重新生成一个列表，对应位置的输出是每个小朋友的好朋友位置，如果没有看到好朋友，请在该位置用0代替
 * 小朋友人数范围是 [0, 40000]
 * <p>
 * 1.输入：
 * 2
 * 100 95
 * 输出：0 0
 * 说明：
 * <p>
 * 第一个小朋友身高100站在队伍末尾，向队首看，没有比他身高高的小朋友，所以输出第一个值为0，第二个小朋友站在队首前面也没有比他身高高的小朋友，所以输出第二个值为0。
 * 2.输入：
 * 8
 * 123 124 125 121 119 122 126 123
 * 输出：1 2 6 5 5 6 0 0
 */
public class N个小朋友站成一队 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextLine()) {
            String N = scanner.nextLine();
            String str = scanner.nextLine();
            String[] split = str.split(" ");
            int[] ints = new int[Integer.parseInt(N)];
            for (int i = 0; i < split.length; i++) {
                int index = i + 1;
                while (index < (split.length) && Integer.parseInt(split[index]) <= Integer.parseInt(split[i])) {
                    index++;
                }
                if (index >= split.length) {
                    index = 0;
                }
                ints[i] = index;
            }
            System.out.println(Arrays.toString(ints));
        }
    }
}
